IICSでGoogle Driveに接続してみる
本エントリはクラスメソッド インフォマティカ Advent Calendar 2020のエントリです。
- クラスメソッド インフォマティカ Advent Calendar 2020 - Qiita
- クラスメソッド インフォマティカ Advent Calendar 2020 | 特集カテゴリー | Developers.IO
データアナリティクス事業本部、池田です。 アドベントカレンダー22日目です!寒いわね…
数日前のアドベントカレンダー では、Informatica Intelligent Cloud Services(以下IICS)から Google スプレッドシート(以下スプレッドシート)に接続してみました。今回は、 Google Drive (Google ドライブ、以下Drive)の コネクタ を使ってみます。
スプレッドシートのコネクタ と似たような感じかと思っていたら、DriveのAPIを使っていろいろできるようです。 今回はファイルのダウンロードを試してみます。
Drive側の準備(リフレッシュトークンの取得)
この辺 やら この辺 を参考にする必要がありますが、 前回のスプレッドシートのブログ の流れでできますので、違いだけ紹介します。
スプレッドシートの時と違うのは2箇所で…
①初めにGCPコンソールで有効化するのが、DriveのAPI
②認可コードを取得する時のURLで指定するスコープ scope=
をDriveにする
例: https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=auto&client_id={クライアントID}&response_type=code&scope=https://www.googleapis.com/auth/drive&redirect_uri={リダイレクトURI}
※例ではDrive全体の許可を取得しようとしていますが、絞ることができます。 →
スコープについて
最終的に作成するのはリフレッシュトークンで、 その他にクライアントIDとクライアントシークレットを次章で使います。
使用するDriveのファイル
使うのは、↓こんな感じです。
今回はダウンロードしてみるので、このファイルのIDが必要になります。
ファイル共有用のURLなどから取得できます。(フォルダのURLと間違わないよう注意。)
接続してみる
コネクタの有効化
「アドオンコネクタ」からコネクタを有効化します。
接続の作成
Google Drive connection properties
を参考に接続を作成します。
ランタイム環境
はSecure Agent環境が必要です。
今回はダウンロードを試すので、 File Download Path
にSecure Agentのサーバ上の
ディレクトリを指定しました。
動かしてみる
マッピングを使って処理をしてみます。
名前をつけます。
ソース側の設定をしていきます。
作成したDriveの接続を指定し、 オブジェクト
で行いたい操作を指定します。
今回はダウンロードなので、「選択」ボタンから Files_Get
を選択。
操作はいろいろ選べる
のですが、この段階でプレビューできるものもいくつかありました。
例えば Files_List
を選んで「データのプレビュー」を押すと、↓ファイルの一覧が取得できます。
IICSのガイドでは説明を見つけられなかったのですが、ここで指定できるオブジェクトは、
このGoogleのリファレンス
に相当していると思われます。たぶん。
ダウンロードするファイルを指定するため、
同じ設定フォーム内の「クエリオプション」を使用します。
id
フィールドに、ダウンロードしたいファイルのDrive上でのIDをフィルタとして設定します。
ここでIDを指定したファイルが、接続の作成時に指定した File Download Path
にダウンロードされます。
Driveのコネクタでダウンロードしたファイルに加え、 ファイルのメタデータが出力されるので、ターゲット側も設定します。
今回はファイルに出力するので、「 フラットファイル 」
のコネクタを使っています。
オブジェクト
は「選択」ボタンから新規作成にしました。
↓使った接続はこんな感じ。(この辺は エクセルのブログ で使ったもの。)
フラットファイルの方の接続で指定した ディレクトリ
に、
ターゲットで設定したファイル名で、メタ情報が出力されます。
保存して、実行してみます。
「マイジョブ」から結果を確認できます。
成功!
↓Secure Agentのサーバ上にDriveからダウンロードしたファイルと、 そのファイルのメタ情報がcsvで出力されていました。
$ ls -la total 56 drwxrwxr-x 2 infa infa 4096 Dec 21 23:03 . drwxr-xr-x 10 infa infa 4096 Dec 18 10:05 .. -rw-r--r-- 1 infa infa 989 Dec 21 23:03 output_meta.csv -rw-r--r-- 1 infa infa 14 Dec 21 23:03 test.tsv $ cat test.tsv a b c d e f $ cat output_meta.csv "kind","id","name","mimeType","starred","trashed","explicitlyTrashed","acknowledgeAbuse","parents","properties","appProperties","spaces","version","webContentLink","webViewLink","iconLink","hasThumbnail","thumbnailVersion","viewedByMe","viewedByMeTime","createdTime","modifiedTime","modifiedByMeTime","modifiedByMe","owners","lastModifyingUser_kind","lastModifyingUser_displayName","lastModifyingUser_me","lastModifyingUser_permissionId","lastModifyingUser_emailAddress","shared","ownedByMe","viewersCanCopyContent","writersCanShare","permissions","permissionIds","originalFilename","fullFileExtension","fileExtension","md5Checksum","size","quotaBytesUsed","headRevisionId","isAppAuthorized" "drive#file","xxxx","test.tsv","text/tab-separated-values","null","null","null","false",,,,,"null","null","null","null","null","null","null","null","null","null","null","null",,,,,,,"null","null","null","null",,,"null","null","null","null","null","null","null","null" $
おわりに
ガイドを見る限りダウンロードだけでなく、 アップロード(ファイル作成)や削除、権限変更などもできそうです。 Driveを上手く使えばデータファイルの配布などが楽になるかもしれませんね。
良いお年を!